Field
The described embodiments relate to computing devices. More specifically, the described embodiments relate to setting power-state limits based on performance coupling and thermal coupling between heterogeneous entities in a computing device.
Related Art
Many computing devices include two or more heterogeneous entities that perform operations in the computing devices. For example, computing devices can include one or more central processing units (CPUs), one or more graphics processing units (GPUs), and/or one or more accelerated processing units (APUs). As another example, computing devices can include one or more full-power processors and one or more low-power or embedded processors.
In some computing devices, two or more entities work together on shared workloads, with each entity performing a portion of the operations for the workloads. When working together on a shared workload, some or all of the entities may rely on results output from other entities as inputs for operations for a corresponding portion of the shared workload. In this case, improperly balancing the performance of the entities can lead to sub-optimal performance for some or all of the entities (or the computing device as a whole). As an example, assuming that the computing device includes two entities, if a first entity is able to perform its share of the operations for the shared workload quickly, but does not receive inputs from or cannot send outputs to a second entity because the second entity is not able to perform its share of the operations as quickly, the first entity experiences delay and may unnecessarily consume power and generate heat if the first entity is operated at a higher power-state limit (with corresponding higher frequencies, voltages, etc.).
Most computing devices with heterogeneous entities also operate with temperature constraints on the entities to avoid damaging components in the computing device, including the entities themselves. For example, the entities may each have an operating temperature threshold. During operation, when an entity exceeds the corresponding operating temperature threshold, the entity is throttled (i.e., forced to operate at a lower power-state limit). In some of these computing devices, the entities are free to operate at higher power-state limits, as long as the entities do not exceed corresponding operating temperature thresholds.
Because entities can compute faster using higher power-state limits, allowing the entities to operate at higher power-state limits under the temperature constraints for the entity can enable efficient operation. However, maximizing one entity's power-state limit can sometimes negatively effect the operation of other entities in the computing device. For example, consider a first entity operating at a highest power-state limit while performing operations in a shared workload that includes more operations that are to be performed by the second-entity. This can happen, for example, when a shared workload is being executed by a CPU and a GPU when more of the operations are GPU-oriented operations, but the CPU is operating in the highest power-state limit. In such a case, the first entity operating at the highest power-state limit could heat up the second entity (particularly in the case that the first entity and second entity are on the same integrated circuit chip) and constrain the performance of the second entity by causing the second entity to be throttled due to the thermal constraint on the second entity. Thus, simply allowing entities to operate at higher power-state limits as long as the entities do not exceed corresponding operating temperature thresholds can sometimes result in less efficient overall operation of the computing device.
Throughout the figures and the description, like reference numerals refer to the same figure elements.